package test;

import java.util.ArrayList;
import java.util.List;

import org.apache.commons.lang3.StringUtils;

import com.weight.common.generate.GenerateImp;
import com.weight.common.generate.temple.AddHtmlResourceFile;
import com.weight.common.generate.temple.AddHtmlResourceFileNew;
import com.weight.common.generate.temple.AuthFile;

import test.temple.ControllerClassFileMapper;
import test.temple.ControllerClassFileMapperNew;
import test.temple.MapperInterfaceFile;
import test.temple.MapperSQLResourceFile;
import test.temple.MapperSQLResourceFileNew;
import test.temple.MapperXmlResourceFile;
import test.temple.MybatisConfigFile;
import test.temple.POJOClassFileMapper;
import test.temple.ServiceClassFileMapper;
import test.temple.ServiceInterfaceFileMapper;
import test.temple.queryDetailHtmlResourceFile;
import test.temple.queryHtmlResourceFile;
import test.temple.queryHtmlResourceFileNew;

public class BBB {
	public static String path =
			"E:\\222\\";
			 
	public static String packageName="0";//包名project
	public static String modelName="0";//项目名
	public static String tableName="0";//"project_info"; 数据库英文表名
	public static String tableCnName="0";//"项目信息表";数据库中文表名
	
	public static String souPath =path + "";//"src/main/java";//源路径
	public static String htmPath =path + "";// "src/main/resources";HTML路径
	public static String packPath = "";//"com/weight/system"; 文件夹路径
 	
	public static String POJOName="PO/VO";	 
	/** 数据库字段名	*/
	public static  List<String> 	fieldDOList;
	/**	实体类属性名	*/
	public static  List<String>  	fieldENList;
	/**	属性中文名		*/
	public static  List<String>  	fieldCNList;
	/**	字段类型		*/
	public static  List<String> 	fieldTypeList;
	public static  List<String> 	fieldSizeList;
	public static  List<String> 	fieldIndexList;

	public static String htmPathTempl ="";
	public static void main(String[] args) {
		
		
		List<String> strList = new ArrayList();

		String ss = "	类别常量表	:	type_info	:		:		:		;	"+
		"	类别编号	:	type_code	:	VARCHAR	:	32	:		;	"+
		"	类别名称	:	type_name	:	VARCHAR	:	32	:		;	"+
		"	类别分组编号	:	type_group	:	VARCHAR	:	32	:		;	"+
		"	级别	:	type_level	:	TINYINT	:	2	:		;	"+
		"	排序	:	type_sort	:	TINYINT	:	4	:		;	"+
		"	状态	:	type_status	:	TINYINT	:	1	:		;	"+
		"	描述	:	type_desc	:	VARCHAR	:	512	:			"
;
		strList.add(ss);	
		
		ss ="	设备清单表	:	overload_info	:		:		:		;	"+
				"	设备清单id	:	overload_id	:	VARCHAR	:	8	:	primary	;	"+
				"	设备id	:	equmt_id	:	VARCHAR	:	8	:		;	"+
				"	机构id	:	org_id	:	VARCHAR	:	8	:		;	"+
				"	重量	:	overload_count	:	DECIMAL	:	8:2	:		;	"+
				"	称重时间	:	overload_date	:	DATE	:		:		 	" ;
		strList.add(ss);	
		 ss = "	称重记录表	:	weight_info	:	main	:		:		;	"+
				"	称重记录id	:	weight_id	:	VARCHAR	:	8	:	primary	;	"+
				"	设备id	:	equmt_id	:	VARCHAR	:	8	:		;	"+
				"	机构id	:	org_id	:	VARCHAR	:	8	:		;	"+
				"	称重时间	:	weight_date	:	DATE	:		:		;	"+
				"	重量	:	weight_count	:	DECIMAL	:	8:2	:			";
		 strList.add(ss);	
		
		 ss = "	人员信息表	:	user_info	:		:		:		;	"+
				"	员工id	:	user_id	:	VARCHAR	:	32	:	primary	;	"+
				"	员工姓名	:	user_name	:	VARCHAR	:	32	:		;	"+
				"	员工编号	:	user_code	:	VARCHAR	:	32	:	index	;	"+
				"	性别	:	user_sex	:	TINYINT	:	1	:		;	"+
				"	出生日期	:	user_birth	:	VARCHAR	:	32	:		;	"+
				"	身份证号	:	user_idnum	:	VARCHAR	:	32	:		;	"+
				"	联系电话	:	user_tel	:	VARCHAR	:	32	:		;	"+
				"	联系地址	:	user_address	:	VARCHAR	:	512	:		;	"+
				"	员工邮箱	:	user_pcode	:	VARCHAR	:	32	:		;	"+
				"	员工状态	:	user_status	:	TINYINT	:	1	:		;	"+
				"	员工头像	:	user_path	:	VARCHAR	:	128	:			";
		 strList.add(ss);	
		
		ss = "	设备信息表	:	equmt_info	:	main	:		:		;	"+
				"	设备id	:	equmt_info_id	:	VARCHAR	:	8	:	primary	;	"+
				"	设备名称	:	equmt_name	:	VARCHAR	:	32	:		;	"+
				"	设备IP	:	equmt_IP	:	VARCHAR	:	8	:		;	"+
				"	机构id	:	org_id	:	VARCHAR	:	8	:		;	"+
				"	维护周期(月)	:	fix_cycle	:	TINYINT	:	8	:		;	"+
				"	设备状态	:	equmt_statue	:	TINYINT	:	1	:		;	"+
				"	设备照片	:	equpic_path	:	VARCHAR	:	8	:		;	"+
				"	超载重量	:	equmt_overload	:	DECIMAL	:	8,2	:		;	"+
				"	分度值	:	equmt_diva	:	VARCHAR	:	16	:		;	"+
				"	跟踪	:	equmt_divb	:	VARCHAR	:	16	:		;	"+
				"	通信	:	equmt_divc	:	VARCHAR	:	16	:		;	"+
				"	传感器	:	equmt_divd	:	VARCHAR	:	16	:		;	"+
				"	波特率	:	equmt_dive	:	VARCHAR	:	16	:		;	"+
				"	经度	:	equmt_lon	:	VARCHAR	:	8	:		;	"+
				"	纬度	:	equmt_lat	:	VARCHAR	:	8	:		;	"+
				"	安装时间	:	takecare_stdate	:	DATE	:		:		;	"+
				"	最新维护时间	:	takecare_cudate	:	DATE	:		:			";
		strList.add(ss);	
		
		ss = "	设备保养记录表	:	takecare_info	:		:		:		;	"+
				"	设备保养记录id	:	takecare_info_id	:	VARCHAR	:	8	:	primary	;	"+
				"	设备id	:	equmt_id	:	VARCHAR	:	8	:		;	"+
				"	保养时间	:	takecare_date	:	DATE	:		:		;	"+
				"	保养人	:	takecare_pern	:	VARCHAR	:	128	:		;	"+
				"	保养内容	:	takecare_desc	:	VARCHAR	:	512	:			";
		strList.add(ss);	
		
		ss = "	设备维修记录表	:	fix_info	:		:		:		;	"+
				"	设备维修id	:	fix_info_id	:	VARCHAR	:	8	:	primary	;	"+
				"	设备id	:	equmt_id	:	VARCHAR	:	8	:		;	"+
				"	维修日期	:	fix_date	:	DATE	:		:		;	"+
				"	维修描述	:	fix_desc	:	VARCHAR	:	512	:		;	"+
				"	维修照片	:	cospic_path	:	VARCHAR	:	64	:		;	"+
				"	维修人	:	fix_pern	:	VARCHAR	:	128	:			"
;
		
		
		strList.add(ss);	
		
		ss ="	菜单权限表	:	menu_auth_info	:		:		:		;	"+
				"	菜单权限id	:	menu_auth_id	:	VARCHAR	:	8	:	primary	;	"+
				"	菜单id	:	menu_id	:	VARCHAR	:	32	:		;	"+
				"	账号id	:	oper_id	:	VARCHAR	:	32	:		;	"+
				"	菜单权限状态	:	auth_status	:	TINYINT	:	1	:		;	"+
				"	增	:	auth_add	:	TINYINT	:	1	:		;	"+
				"	删	:	auth_del	:	TINYINT	:	1	:		;	"+
				"	改	:	auth_edit	:	TINYINT	:	1	:			"
 
;
		strList.add(ss);	
 	 ss = "	登录日志表	:	login_info	:		:		:		;	"+
 			"	登录日志id	:	log_info_id	:	VARCHAR	:	8	:	primary	;	"+
 			"	账号id	:	oper_id	:	VARCHAR	:	32	:		;	"+
 			"	登录日期	:	log_date	:	DATE	:		:		;	"+
 			"	登录IP	:	log_ip	:	VARCHAR	:	32	:		;	"+
 			"	经度	:	login_lon	:	VARCHAR	:	8	:		;	"+
 			"	纬度	:	login_lat	:	VARCHAR	:	8	:			"
;
 	strList.add(ss);	
 	ss = "	命令记录表	:	order_info	:		:		:		;	"+
			"	命令记录id	:	order_info_id	:	VARCHAR	:	32	:	primary	;	"+
			"	命令	:	order_msg	:	VARCHAR	:	16	:		;	"+
			"	命令内容	:	order_desc	:	VARCHAR	:	128	:		;	"+
			"	命令状态	:	order_statue	:	TINYINT	:	1	:		;	"+
			"	记录命令时间	:	order_date	:	DATE	:		:			";
;
 	strList.add(ss);	
 	ss=	"	超重记录表	:	overload_info	:		:		:		;	"+
			"	设备清单id	:	overload_id	:	VARCHAR	:	8	:	primary	;	"+
			"	设备id	:	equmt_id	:	VARCHAR	:	8	:		;	"+
			"	机构id	:	org_id	:	VARCHAR	:	8	:		;	"+
			"	重量	:	overload_count	:	DECIMAL	:	8,2	:		;	"+
			"	称重时间	:	overload_date	:	DATE	:		:			";
 	strList.add(ss);	
 	ss ="	称重记录表	:	weight_info	:	main	:		:		;	"+
			"	称重记录id	:	weight_id	:	VARCHAR	:	8	:	primary	;	"+
			"	设备id	:	equmt_id	:	VARCHAR	:	8	:		;	"+
			"	机构id	:	org_id	:	VARCHAR	:	8	:		;	"+
			"	称重时间	:	weight_date	:	DATE	:		:		;	"+
			"	重量	:	weight_count	:	DECIMAL	:	8,2	:		;	"+
			"	称重记录数据	:	weight_data	:	VARCHAR	:	8	:		;	"+
			"	序号	:	weight_seq	:	VARCHAR	:	8	:		;	"+
			"	年月日时分秒	:	weight_time	:	DATE	:		:		;	"+
			"	车号	:	weight_car	:	VARCHAR	:	8	:		;	"+
			"	单位号	:	weight_org	:	VARCHAR	:	8	:		;	"+
			"	货号	:	weight_good	:	VARCHAR	:	8	:		;	"+
			"	毛重	:	weight_mweight	:	VARCHAR	:	8	:		;	"+
			"	皮重	:	weight_pweight	:	VARCHAR	:	8	:		;	"+
			"	状态	:	weight_status	:	TINYINT	:	1	:			";
	strList.add(ss);	
		
	ss = "	菜单信息表	:	sys_menu_info	:	main	:		:		;	"+
			"	菜单id	:	menu_info_id	:	VARCHAR	:	32	:	primary	;	"+
			"	菜单父节点id	:	menu_pid	:	VARCHAR	:	32	:	index	;	"+
			"	菜单姓名	:	menu_name	:	VARCHAR	:	64	:		;	"+
			"	菜单链接地址	:	menu_url	:	VARCHAR	:	128	:		;	"+
			"	菜单状态	:	menu_status	:	TINYINT	:	1	:		;	"+
			"	菜单级别	:	menu_level	:	TINYINT	:	1	:		;	"+
			"	菜单描述	:	menu_desc	:	VARCHAR	:	512	:		;	"+
			"	菜单排序	:	menu_sort	:	TINYINT	:	4	:	";
		strList.add(ss);	
				
				
		
		ss = "	命令记录表	:	order_info	:		:		:		;	"+
				"	命令记录id	:	order_info_id	:	VARCHAR	:	8	:	primary	;	"+
				"	命令记录	:	order_desc	:	VARCHAR	:	128	:		;	"+
				"	命令状态	:	order_statue	:	TINYINT	:	1	:		;	"+
				"	记录命令时间	:	order_date	:	DATE	:		:			"
				;
		strList.add(ss);	
		
		ss = "	命令表	:	command_info	:		:		:		;	"+
			"	命令id	:	command_id	:	VARCHAR	:	32	:	primary	;	"+
			"	命令字段	:	command_mesg	:	VARCHAR	:	8	:		;	"+
			"	命令类型	:	command_type	:	VARCHAR	:	1	:			"
	;
		strList.add(ss);	
		ss = 	"	指令表	:	command_info	:		:		:		;	"+
				"	指令id	:	command_id	:	VARCHAR	:	32	:	primary	;	"+
				"	指令	:	command_mesg	:	VARCHAR	:	8	:		;	"+
				"	指令名称	:	command_name	:	VARCHAR	:	128	:		;	"+
				"	命令类型	:	command_type	:	TINYINT	:	1	:		;	"+
				"	分组	:	command_group	:	TINYINT	:	2	:		;	"+
				"	分度值	:	command_area	:	VARCHAR	:	128	:		;	"+
				"	分度值类型	:	area_type	:	TINYINT	:	1	:		;	"+
				"	分度值刻度	:	area_option	:	VARCHAR	:	128	:		;	"+
				"	状态	:	status	:	TINYINT	:	1	:	 " 
;

		strList.add(ss);	
		
		 ss="	账号信息表	:	sys_oper_info	:		:		:		;	"+
		 			"	账号id	:	oper_id	:	VARCHAR	:	32	:	primary	;	"+
		 			"	用户名	:	oper_uname	:	VARCHAR	:	32	:		;	"+
		 			"	密码	:	oper_pwd	:	VARCHAR	:	32	:		;	"+
		 			"	加密盐	:	ope_salt	:	VARCHAR	:	32	:		;	"+
		 			"	员工id	:	user_id	:	VARCHAR	:	32	:		;	" +
		 			"	机构id	:	org_id	:	VARCHAR	:	32	:		;	" +
		 			"	关联手机号	:	oper_tel	:	VARCHAR	:	32	:		;	" +	
		 			"	账号状态	:	oper_status	:	TINYINT	:	1	:		;	"+
		 			"	描述	:	oper_desc	:	VARCHAR	:	512	:			"
		;
		 strList.add(ss);	
		 ss="	组织机构信息表	:	org_info	:		:		:		;	"+
					"	机构id	:	org_id	:	VARCHAR	:	32	:	primary	;	"+
					"	机构简称	:	org_lname	:	VARCHAR	:	64	:		;	"+
					"	机构全名	:	org_hname	:	VARCHAR	:	64	:		;	"+
					"	机构编号	:	org_code	:	VARCHAR	:	8	:		;	"+
					"	机构联系人	:	org_user	:	VARCHAR	:	32	:		;	"+
					"	机构联系电话	:	org_tel	:	VARCHAR	:	32	:		;	"+
					"	机构邮箱	:	org_email	:	VARCHAR	:	32	:		;	"+
					"	机构地址（省）	:	org_adda	:	VARCHAR	:	128	:		;	"+
					"	机构地址（市）	:	org_addb	:	VARCHAR	:	128	:		;	"+
					"	机构地址（地区）	:	org_addc	:	VARCHAR	:	128	:		;	"+
					"	机构地址（乡镇）	:	org_addd	:	VARCHAR	:	128	:		;	"+
					"	机构地址（村）	:	org_adde	:	VARCHAR	:	128	:		;	"+
					"	经度	:	org_lon	:	VARCHAR	:	8	:		;	"+
					"	纬度	:	org_lat	:	VARCHAR	:	8	:		;	"+
					"	机构邮编	:	org_pcode	:	VARCHAR	:	32	:		;	"+
					"	机构排序	:	org_sort	:	TINYINT	:	2	:			";
		 strList.add(ss);	
			ss = "	人员信息表	:	user_info	:		:		:		;	"+
					"	员工id	:	user_id	:	VARCHAR	:	32	:	primary	;	"+
					"	员工姓名	:	user_name	:	VARCHAR	:	32	:		;	"+
					"	员工编号	:	user_code	:	VARCHAR	:	32	:	index	;	"+
					"	性别	:	user_sex	:	TINYINT	:	1	:		;	"+
					"	出生日期	:	user_birth	:	VARCHAR	:	32	:		;	"+
					"	身份证号	:	user_idnum	:	VARCHAR	:	32	:		;	"+
					"	联系电话	:	user_tel	:	VARCHAR	:	32	:		;	"+
					"	联系地址	:	user_address	:	VARCHAR	:	512	:		;	"+
					"	员工邮箱	:	user_pcode	:	VARCHAR	:	32	:		;	"+
					"	员工状态	:	user_status	:	TINYINT	:	1	:		;	"+
					"	员工头像	:	user_path	:	VARCHAR	:	128		:		";
			strList.add(ss);	
			ss = "	设置管理表	:	set_info	:		:		:		;	"+
					"	设置id	:	set_id	:	VARCHAR	:	32	:	primary	;	"+
					"	设置姓名	:	set_name	:	VARCHAR	:	32	:		;	"+
					"	设置地址	:	set_url	:	VARCHAR	:	128	:	index	;	"+
					"	设置状态	:	set_status	:	TINYINT	:	1	:		;	"+
					"	机构排序	:	set_sort	:	TINYINT	:	2	:		;	"+
					"	设置图标	:	set_pic	:	VARCHAR	:	128		:		";
			strList.add(ss);	
			ss = 	"	数据结构表	:	datagroupd_info	:		:		:		;	"+
					"	字段id	:	data_id	:	VARCHAR	:	32	:	primary	;	"+
					"	表名ID	:	dataTab_id	:	VARCHAR	:	32	:		;	"+
					"	表名字段	:	dataTab_Ename	:	VARCHAR	:	32	:		;	"+
					"	表名	:	dataTab_Cname	:	VARCHAR	:	32	:		;	"+
					"	字段 	:	data_Ename	:	VARCHAR	:	32	:		;	"+
					"	字段名	:	data_Cname	:	VARCHAR	:	32	:		;	"+
					"	类型（输入，选择）	:	data_type	:	TINYINT	:	1	:		;	"+
					"	选择范围入库	:	data_store	:	VARCHAR	:	128	:		;	"+
					"	选择范围展示	:	data_show	:	VARCHAR	:	256	:		;	"+
					"	输入界值	:	data_limit	:	TINYINT	:	4	:		;	"+
					"	状态	:	data_status	:	TINYINT	:	1	:			";
			strList.add(ss);	
			
			
			
			ss = "	设备管理表	:	equmtgrp_info	:	main	:		:		;	"+
					"	设备id	:	equmtgrp_info_id	:	VARCHAR	:	32	:	primary	;	"+
					"	设备名称	:	equmtgrp_name	:	VARCHAR	:	32	:		;	"+
					"	设备IP	:	equmtgrp_IP	:	VARCHAR	:	8	:		;	"+
					"	机构id	:	org_id	:	VARCHAR	:	8	:		;	"+
					"	设备注册码	:	equmtgrp_intcode	:	VARCHAR	:	32	:		;	"+
					"	设备注册码密文	:	equmtgrp_msfcode	:	VARCHAR	:	128	:		;	"+
					"	设备注册码加密盐	:	equmtgrp_flat	:	VARCHAR	:	128	:		;	"+
					"	设备注册码加密次数	:	equmtgrp_count	:	TINYINT	:	1	:		;	"+					 
					"	设备状态	:	equmtgrp_status	:	TINYINT	:	1	:		;	"+
					"	设备照片	:	equmtgrppic_path	:	VARCHAR	:	64	:		;	"+					 
					"	安装时间	:	takecare_stdate	:	DATE	:		:		;	"+
					"	最新维护时间	:	takecare_cudate	:	DATE	:		:			;"+
					"	权限1	:	equmtgrp_auth1	:	VARCHAR	:	32	:		;	"+
					"	权限2	:	equmtgrp_auth2	:	VARCHAR	:	32	:		;	"+
					"	权限3	:	equmtgrp_auth3	:	VARCHAR	:	32	:			";
			ss = "	传感器错误标记表	:	sensor_info	:		:		:		;	"+
					"	命令记录id	:	sensor_info_id	:	VARCHAR	:	32	:	primary	;	"+
					"	传感器	:	sensor_num	:	VARCHAR	:	16	:		;	"+
					"	传感器错误码	:	sensor_desc	:	VARCHAR	:	128	:		;	"+
					"	命令状态	:	sensor_statue	:	TINYINT	:	1	:		;	"+
					"	记录命令时间	:	sensor_date	:	DATE	:		:			";
		;	
		strList.add(ss);
		ss = "	快捷管理表	:	quick_info	:		:		:		;	"+
				"	命令记录id	:	quick_info_id	:	VARCHAR	:	32	:	primary	;	"+
			 
				"	菜单id	:	menu_id	:	VARCHAR	:	32	:		;	"+
				"	账号id	:	oper_id	:	VARCHAR	:	32	:		;	"+
				
				"	命令状态	:	quick_statue	:	TINYINT	:	1	:		";
	;
		
			strList.add(ss);	
			for(int i=0 ;i<strList.size();i++) {
				 init(strList.get(i));
				 
				 /** 代码生成   */
					addGeneraterMethod();
			}
		
		 
		 
		 
		
		 

	}
	/**
	 * 代码生成器  *第一章 .		代码生成 
	 * @param successList
	 * @param generateInfoPath
	 */
	 public static void addGeneraterMethod() {
		 
		/**1.指定文件生成位置*/		
		souPath=new StringBuilder(souPath).append("/").append(packPath).append("/").append(packageName).toString();//源路径+文件夹路径+项目文件名
		/**2.确定文件相对路径*/		
		packPath=toPackage(new StringBuilder(packPath).append("/").append(packageName).toString());//文件夹路径+项目文件名
		POJOName="PO/VO";	
		htmPathTempl=new StringBuilder(htmPath).append(packageName).toString();//htmnl路径
		
		
		
		/**	前端Add代码生成	 */
			frontAddStyle();
			/**	前端Detail代码生成	 */
		 	frontDetailStyle();
			
		 	/**	前端List代码生成	 */
		 	frontListStyle();
			
			/**	ORM代码生成	 */
			mapperXmlMethod();
//			
//			/** 数据层DAO  Mapper代码生成*/
//			mapperMethod();
//			 
//			/**实体类POVO代码生成*/
//			povoMethod();
//			 
//			/**服务层Service代码生成*/
//			serviceMethod();
			 
			/***控制层  Controller */
			controllerMethod(); 
			
			/**	SQL代码生成	 */
			sqlMethod();
//
//			/**	i18n国际化 代码生成	 */
//		 	backi18nMethod();

			/**	mybatis-config.xml配置文件代码生成	 */
//		 	backMybatisConfiMethod();
//			
//			/**	后台代码生成	 */
//		 	backMethod();
			 
	}
	
	
	
	public static void init(String ss) {
//		if(ss.trim().endsWith(",")  ) {
////			ss = ss.trim().substring(0,ss.trim().length()-1);
//			ss
//			System.out.println(ss);
//		}
		
		
		String[] tt = ss.split(";");
		String tts="";
		String[] ttst=null;
		fieldDOList = new ArrayList<String> ();
		fieldENList = new ArrayList<String> ();
		fieldCNList = new ArrayList<String> ();
		fieldTypeList = new ArrayList<String> ();
		fieldSizeList = new ArrayList<String> ();
 		fieldIndexList = new ArrayList<String> ();
		for(int i = 0 ;i <tt.length;i++ ) {
	 		ttst = doTrim(tt[i].split(":"));
	 		System.out.println(ttst.length);
	 		if(i==0) {
	 			packageName=ttst[1].substring(0,ttst[1].lastIndexOf("_info")).replaceAll("_", "");
	 			tableName=ttst[1];
				tableCnName=ttst[0];
			 	modelName=doToEn(ttst[1].toLowerCase());
			 	continue;
	 		}
//	 		System.out.println(ttst[0]);
	 		/** 数据库字段名	*/
	 		fieldDOList.add(ttst[1].toLowerCase());
	 		/**	实体类属性名	*/
	 		fieldENList.add(doToEn(ttst[1].toLowerCase()));
	 		/**	属性中文名		*/
	 		fieldCNList.add(ttst[0]);
	 		/**	字段类型		*/
	 		fieldTypeList.add(ttst[2]);
//	 		System.out.println(ttst[0]);
	 		fieldSizeList.add(ttst[3]);
	 		fieldIndexList.add(ttst[4]);
	 	 }
	}
	
	
	
	
	
	
	/**	前端Add代码生成	 */
	 public static void frontAddStyle() {
//		System.out.println();  modelName,htmPath,packageName,modelName,fieldENList,fieldCNList, tableCnName);
		 if(modelName.endsWith("Info")||modelName.endsWith("Log")) {
			//add	添加页面
			 AddHtmlResourceFileNew ccf1 = new AddHtmlResourceFileNew(htmPathTempl,packageName,modelName,fieldENList,fieldCNList, tableCnName);
			try { 
				ccf1.generate();
			} catch (Exception e) {
				e.printStackTrace();
			}
		 }
	 }
	 /**	前端Detail代码生成	 */
	 public static void frontDetailStyle() {
		 //queryDetail	查详情
		queryDetailHtmlResourceFile ccf2 = new queryDetailHtmlResourceFile(htmPathTempl,packageName,modelName,fieldENList,fieldCNList, tableCnName);
		try {
			ccf2.generate();
		} catch (Exception e) {
			e.printStackTrace();
		}
	 }
	 /**	前端List代码生成	 */
	 public static void frontListStyle() {
		//queryList 查列表
		 queryHtmlResourceFileNew ccf3 = new queryHtmlResourceFileNew(htmPathTempl,packageName,modelName,fieldENList,fieldCNList, tableCnName);
		try {
			ccf3.generate();
		} catch (Exception e) {
			e.printStackTrace();
		}
	 }
	 
	/***
	 *   //后台代码生成
	 * @param modelName
	 * @param POJOName
	 */
	 public static void backMethod() {
		AuthFile aasd=new AuthFile(htmPath+"/mybatis/sql","pathUrl",modelName,fieldENList,fieldCNList,tableCnName,packageName);
		try {
			aasd.geneAppend();
		} catch (Exception e4) {
			e4.printStackTrace();
		}
		
 	}
	 /***
	 * mybatis-config.xml配置文件代码生成
	 */
	 public static void backMybatisConfiMethod() {
		MybatisConfigFile mff=new MybatisConfigFile(htmPath+"/mybatis",modelName,"mybatis-config",packPath,tableCnName);
		try {
			mff.geneLine(22L); 
		} catch (Exception e5) {
			e5.printStackTrace();
		} 
	 }
	 /**
	  * 实体类POVO代码生成
	  */
	 public static void povoMethod() {
		if(modelName.endsWith("Info")||modelName.endsWith("Log")) {
		//实体类PO   Entity
		 	String[] POJONames=POJOName.split("/");
		 	for(int k=0;k<POJONames.length;k++) {
				POJOClassFileMapper pcf = new POJOClassFileMapper(souPath+"/"+POJONames[k], packPath, POJONames[k], modelName,fieldENList,fieldCNList,fieldTypeList,tableCnName);
				try {
					pcf.generate();
				} catch (Exception e4) {
					e4.printStackTrace();
				}
		 	}
	 	}else {
			POJOClassFileMapper pcf = new POJOClassFileMapper(souPath+"/PO", packPath, "PO", modelName,fieldENList,fieldCNList,fieldTypeList,tableCnName);
			try {
				pcf.generate();
			} catch (Exception e4) {
				e4.printStackTrace();
			}
	 	}
	 }
	 /**
	  * 数据层DAO  Mapper代码生成
	  */
	 public static void mapperMethod() {
			MapperInterfaceFile rif = new MapperInterfaceFile(souPath+"/DAO",packPath,"DAO",modelName,tableCnName,fieldENList);
			try {
				rif.generate();
			} catch (Exception e3) {
				e3.printStackTrace();
			}
	 }
	 /**
	  * 服务层代码生成
	  */
	 public static void serviceMethod() {
		//服务层接口	ServiceMapper
			ServiceInterfaceFileMapper sif = new ServiceInterfaceFileMapper(souPath+"/service",packPath,"service",modelName,tableCnName,fieldENList);
			try {
				sif.generate();
			} catch (Exception e2) {
				e2.printStackTrace();
			}
		//服务层实现	ServiceImplMapper
			ServiceClassFileMapper scf = new ServiceClassFileMapper(souPath+"/service/impl",packPath,"service.impl",modelName,tableCnName,fieldENList);
			try {
				scf.generate();
			} catch (Exception e1) {
				e1.printStackTrace();
			}
//	 	}
	 }
	 /**
	  * 控制层  Controller
	  */
	 public static void controllerMethod() {
		 
		//控制层  Controller
		ControllerClassFileMapperNew ccf = new ControllerClassFileMapperNew(souPath,packPath,"web", packageName,modelName,tableCnName,fieldENList.get(0),fieldENList,fieldTypeList);
		try {
			ccf.generate();
		} catch (Exception e) {
			e.printStackTrace();
		} 
 	 
	 }
	 /**
	  * ORM生成Mybatis
	  */
	 public static void mapperXmlMethod() {
		 
//		if(modelName.endsWith("Info")) { 
			//mybatis
			MapperXmlResourceFile mmf =new MapperXmlResourceFile(htmPath,modelName,packPath,fieldDOList,fieldENList,fieldTypeList,tableName,tableCnName);
			try {
				mmf.generate();
			} catch (Exception e6) {
				e6.printStackTrace();
			}
//	 	}
	}
	 /**
	  * SQL 生成
	  */
	 public static void sqlMethod() {
		 for(String ss : fieldDOList ) {
			 System.out.println(ss);
		 }
		 
	 	//sql
		 MapperSQLResourceFileNew mqf =new MapperSQLResourceFileNew(htmPath,packageName,modelName,tableName,tableCnName,
	 			fieldDOList,fieldENList,fieldTypeList,fieldSizeList,fieldIndexList,fieldCNList);
		
	 	
	 	
	 	try {
			mqf.generate();
		} catch (Exception e5) {
			e5.printStackTrace();
		}
	 }
	 
	 
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	
	public static String[] doTrim(String[] DOString) {
		for(int i = 0 ;i <DOString.length;i++ ) {
			DOString[i] = DOString[i].trim();	 		 
	 	 }
		return DOString;
	}
	
	
	
	
	
	//表名转驼峰
		public static String doToEn(String DOString) {
			String[] ttt2=DOString.split("_");
			StringBuffer userInfoId=new StringBuffer();
			for(int j=0;j<ttt2.length;j++) {
				if(j==0) {
					userInfoId.append(ttt2[j]);
				}else {
					userInfoId.append(getModelClass(ttt2[j]));
				}
			} 
			return userInfoId.toString();
		}
		//首字母大写
		public static StringBuilder getModelClass(String modelName) {
		    if(modelName!=null&&!modelName.equals("")) {
		    	char[] ch = modelName.toCharArray();  
			    if (ch[0] >= 'a' && ch[0] <= 'z') {  
			        ch[0] = (char) (ch[0] - 32);  
			    }  
				StringBuilder modelClass = new StringBuilder(new String(ch));
				return modelClass;
		    }else {
		    	return null;
		    } 
		}
		//路径  替换  / 为 .
		private static String toPackage(String packPath) {
			return packPath.replaceAll("/", ".");
		}
}
